package com.tql.pandian.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class TimeUtil {

    public static long getTimestamp() {
        Calendar calendar = Calendar.getInstance();
        //东八区
        calendar.setTimeZone(TimeZone.getTimeZone(ZoneId.of("Asia/Shanghai")));
        return calendar.getTime().getTime();

    }

    public static int getMonth(Long reportDate, String formate) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(formate); // 日期格式
        Date date = sdf.parse(String.valueOf(reportDate)); // 将时间值转换为日期对象
        int month = date.getMonth() + 1; // 获取月份，注意getMonth()返回的是0-11的整数，所以要加1
        return month;
    }

    public static int getMonth(String reportDate, String formate) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(formate); // 日期格式
        Date date = sdf.parse(String.valueOf(reportDate)); // 将时间值转换为日期对象
        int month = date.getMonth() + 1; // 获取月份，注意getMonth()返回的是0-11的整数，所以要加1
        return month;
    }

    public static String getCurrentDate() {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();

        // 定义日期格式化器
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");

        // 将当前日期格式化为指定格式的字符串
        String formattedDate = currentDate.format(formatter);
        return formattedDate;
    }

    public static String getStringDate(Date date) {
        // 获取当前日期

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String formattedDate = sdf.format(date);
        System.out.println(formattedDate);
        return formattedDate;
    }

    public static String longDatetoDate(String inputDate) {
        try {
            // 创建输入日期格式的 SimpleDateFormat 对象
            SimpleDateFormat inputFormat = new SimpleDateFormat("yyyyMMdd");
            // 创建目标日期格式的 SimpleDateFormat 对象
            SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");

            // 将输入日期字符串解析为 Date 对象
            Date date = inputFormat.parse(inputDate);
            // 格式化 Date 对象为目标日期格式的字符串
            return outputFormat.format(date);
        } catch (ParseException e) {
            // 如果解析失败，则返回原始输入字符串
            e.printStackTrace();
            return inputDate;
        }
    }

    public static void main(String[] args) throws ParseException {
//        long time = 20240112L; // 示例时间值
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); // 日期格式
//        Date date = sdf.parse(String.valueOf(time)); // 将时间值转换为日期对象
//        int month = date.getMonth() + 1; // 获取月份，注意getMonth()返回的是0-11的整数，所以要加1
//        int month=getMonth("2024-01-16","yyyy-MM-dd");
//        System.out.println("月份: " + month); // 输出结果


//        Date date = new Date();
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
//        String formattedDate = sdf.format(date);
//        System.out.println(formattedDate);

      int month= TimeUtil.getMonth("20240229","yyyyMMdd");
        System.out.println(month);

    }
}
